package com.example.travelapplication.fragment;

import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.res.Resources;
import android.graphics.Bitmap;
import android.os.Bundle;

import androidx.fragment.app.Fragment;
import androidx.room.Room;

import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.Button;
import android.widget.ListView;
import android.widget.Toast;

import com.example.travelapplication.R;
import com.example.travelapplication.activity.OptionActivity;
import com.example.travelapplication.adapter.OptionAdapter;
import com.example.travelapplication.dao.AttDao;
import com.example.travelapplication.database.TravelDatabase;
import com.example.travelapplication.entity.Attraction;
import com.example.travelapplication.entity.Option;

import java.util.ArrayList;
import java.util.List;

/**
 * A simple {@link Fragment} subclass.
 * Use the {@link SettingFragment#newInstance} factory method to
 * create an instance of this fragment.
 */
public class SettingFragment extends Fragment {

    // TODO: Rename parameter arguments, choose names that match
    // the fragment initialization parameters, e.g. ARG_ITEM_NUMBER
    private static final String ARG_PARAM1 = "param1";
    private static final String ARG_PARAM2 = "param2";

    // TODO: Rename and change types of parameters
    private String mParam1;
    private String mParam2;

    public SettingFragment() {
        // Required empty public constructor
    }

    /**
     * Use this factory method to create a new instance of
     * this fragment using the provided parameters.
     *
     * @param param1 Parameter 1.
     * @param param2 Parameter 2.
     * @return A new instance of fragment SettingFragment.
     */
    // TODO: Rename and change types and number of parameters
    public static SettingFragment newInstance(String param1, String param2) {
        SettingFragment fragment = new SettingFragment();
        Bundle args = new Bundle();
        args.putString(ARG_PARAM1, param1);
        args.putString(ARG_PARAM2, param2);
        fragment.setArguments(args);
        return fragment;
    }

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        if (getArguments() != null) {
            mParam1 = getArguments().getString(ARG_PARAM1);
            mParam2 = getArguments().getString(ARG_PARAM2);
        }
    }

    @Override
    public void onResume() {
        super.onResume();

        // 获取焦点
        getView().requestFocus();
        listView.setFocusable(true);
        listView.setFocusableInTouchMode(true);
        listView.requestFocus();
    }

    Button btn_init;
    Button btn_quit;
    ListView listView;
    List<Option> dataList = new ArrayList<>();
    OptionAdapter adapter;

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        View view = inflater.inflate(R.layout.fragment_setting, container, false);
        init(view);
        return view;
    }

    private void init(View view) {
        listView = view.findViewById(R.id.lv_option);
        loadOption();
        adapter = new OptionAdapter(getContext(), dataList);
        listView.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
        listView.setAdapter(adapter);
        listView.setOnItemClickListener(listener);

        TravelDatabase travelDatabase = Room.databaseBuilder(getContext(), TravelDatabase.class, "travelDb")
                .allowMainThreadQueries()
                .build();
        btn_init = view.findViewById(R.id.btn_init);
        btn_init.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if(travelDatabase.attDao().getAllAtt().isEmpty()){
                    initDatabase();
                    Toast.makeText(getContext(), "初始化成功", Toast.LENGTH_SHORT).show();
                }else{
                    Toast.makeText(getContext(), "已初始化,请勿重复操作", Toast.LENGTH_SHORT).show();
                }

            }
        });

        btn_quit = view.findViewById(R.id.btn_quit);
        btn_quit.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                getActivity().finish();
            }
        });
    }

    private void loadOption() {
        Resources resources = getResources();
        Option option1 = new Option("个人信息", resources.getDrawable(R.drawable.info, null));
        Option option2 = new Option("开源", resources.getDrawable(R.drawable.programming, null));
        Option option3 = new Option("关于", resources.getDrawable(R.drawable.about, null));

        dataList.add(option1);
        dataList.add(option2);
        dataList.add(option3);
    }

    AdapterView.OnItemClickListener listener = new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            Intent intent = new Intent(getActivity(), OptionActivity.class);
            intent.putExtra("position", position);
            requireActivity().startActivity(intent);
        }
    };

    private void initDatabase() {
        TravelDatabase travelDatabase = Room.databaseBuilder(getContext(), TravelDatabase.class, "travelDb")
                .allowMainThreadQueries()
                .build();
        AttDao attDao = travelDatabase.attDao();
        attDao.add(new Attraction(
                0,
                "颐和园",
                "中国·北京",
                "颐和园是清朝的皇家行宫和大型皇家园林，位于中国北京市海淀区西北，占地297公顷。颐和园修建于清朝乾隆年间（原名清漪园）、重建于光绪年间，曾属于清朝北京西郊三山五园之一。颐和园素以人工建筑与自然山水巧妙结合的造园手法著称于世，是中国园林艺术顶峰时期的代表。1998年，颐和园被评为世界文化遗产。",
                1,
                true,
                4.6,
                "https://gitee.com/wang-junrong/image-database/raw/master/attraction/pic4.jpg",
                true,
                3500
        ));
        attDao.add(new Attraction(
                0,
                "秦始皇帝陵博物院",
                "中国·陕西",
                "秦始皇陵建于公元前246年至公元前208年，历时39年，是中国历史上秦朝皇帝秦始皇的陵墓，也是中国第一个规模宏大、布局讲究且保存完好的帝王陵寝，现存陵冢高76米，陵园布置仿秦都咸阳，分内外两城，内城周长2.5公里，外城周长6.3公里。陵冢位于内城西南，坐西面东，放置棺椁和随葬器物的地方，为秦始皇陵墓建筑群的核心，目前尚未发掘完成。",
                4,
                true,
                4.6,
                "https://gitee.com/wang-junrong/image-database/raw/master/attraction/pic5.jpg",
                true,
                1580
        ));
        attDao.add(new Attraction(
                0,
                "布达拉宫",
                "中国·西藏",
                "布达拉宫坐落在中国西藏自治区首府拉萨市区西北的玛布日山（红山）上，是一座规模宏大的宫殿式建筑群，最初是吐蕃王朝赞普松赞干布兴建。于17世纪重建后，成为历代达赖喇嘛的冬宫居所，为西藏政教合一的统治中心。整座宫殿具有鲜明的藏族风格，依山而建，气势雄伟。宫中收藏了无数的珍宝，为一座艺术殿堂。1961年纳入中华人民共和国国务院第一批全国重点文物保护单位。1994年，布达拉宫列入世界文化遗产。",
                3,
                true,
                4.8,
                "https://gitee.com/wang-junrong/image-database/raw/master/attraction/pic6.jpg",
                false,
                3000
        ));
        attDao.add(new Attraction(
                0,
                "黄果树瀑布",
                "中国·贵州",
                "黄果树瀑布位于中国贵州省安顺市镇宁布依族苗族自治县，是珠江水系打邦河的支流白水河九级瀑布群中规模最大的一级瀑布。瀑布高度为77.8米，其中主瀑高67米；瀑布宽101米，其中主瀑顶宽83.3米。黄果树瀑布号称“亚洲第一大瀑布”。虽然其一级主瀑布实际上以流量和宽度计算不及老挝的孔恩瀑布，与中国境内瀑布相比也在流量次于黄河壶口瀑布，和宽度次于广西德天瀑布。但还是以其雄奇壮阔的一级主瀑布、连环密布的瀑布群而闻名于海内外，十分壮丽。并享有“中华第一瀑”之盛誉。而其瀑布群包含着雄、奇、险、秀风格各异的大小18个，形成一个庞大的瀑布“家族”，被大世界吉尼斯总部评为世界上最大的瀑布群，列入世界吉尼斯记录。其中黄果树大瀑布是黄果树瀑布群中最为壮观的瀑布。于2007年5月，经中国国家旅游景区质量等级评定委员会审查验收，黄果树瀑布景区成为首批中国国家5A级旅游景区之一。",
                2,
                true,
                4.6,
                "https://gitee.com/wang-junrong/image-database/raw/master/attraction/pic7.jpg",
                true,
                2500
        ));
        attDao.add(new Attraction(
                1,
                "维多利亚港",
                "中国·香港",
                "维多利亚港是位于香港的海港，位处香港岛与九龙半岛之间，两岸均为香港中心商业区。由于港阔水深，香港亦因此有“东方之珠”的美誉。",
                2,
                true,
                4.6,
                "https://gitee.com/wang-junrong/image-database/raw/master/attraction/pic8.jpg",
                true,
                2000
        ));
        attDao.add(new Attraction(
                1,
                "香港迪士尼",
                "中国香港",
                "香港迪士尼乐园是一座位于香港新界大屿山竹篙湾的迪士尼乐园，是香港迪士尼乐园度假区的主要部分。香港迪士尼乐园由香港特别行政区政府及华特迪士尼公司合资拥有的香港国际主题乐园有限公司建设及营运，并由香港迪士尼乐园管理有限公司管理，于2005年9月12日正式开幕。这是全球第五座与亚洲第二座以神奇王国为主题的迪士尼乐园。",
                2,
                true,
                4.4,
                "https://gitee.com/wang-junrong/image-database/raw/master/attraction/pic9.jpg",
                true,
                3100
        ));
        attDao.add(new Attraction(
                1,
                "澳门威尼斯人",
                "中国·澳门",
                "澳门威尼斯人位于澳门路氹城填海区金光大道地段，占地200万平方呎，开幕时是亚洲最大的单幢式酒店及全球最大的赌场。在坊间经常俗称为澳门威尼斯人度假村、威尼斯人、威记等。",
                3,
                true,
                4.5,
                "https://gitee.com/wang-junrong/image-database/raw/master/attraction/pic10.jpg",
                true,
                2500
        ));
        attDao.add(new Attraction(
                1,
                "大三巴牌坊",
                "中国·澳门",
                "大三巴牌坊是澳门天主之母教堂正面前壁的遗址，属于“圣保禄学院天主之母教堂遗址”的组成部分之一，亦是澳门的标志性建筑物之一。“大三巴”一名为华人对圣保禄学院及教堂的称呼，出自圣保禄的葡萄牙文“São Paulo”的汉语译音",
                3,
                true,
                4.3,
                "https://gitee.com/wang-junrong/image-database/raw/master/attraction/pic11.jpg",
                true,
                1530
        ));
        attDao.add(new Attraction(
                1,
                "台北市立动物园",
                "中国·台湾",
                "台北市立动物园是中华民国台湾台北市的一座公立动物园，隶属于台北市政府教育局。1914年创立于圆山地区，旧称“圆山动物园”，与台北市立儿童育乐中心（台北市立儿童新乐园旧址，今圆山遗址）相邻。1986年，因圆山原址无法扩建，而迁至木栅区（今文山区），因此成为台湾民众现在所熟悉的“木栅动物园”。",
                2,
                true,
                4.6,
                "https://gitee.com/wang-junrong/image-database/raw/master/attraction/pic12.jpg",
                true,
                2300
        ));
        attDao.add(new Attraction(
                1,
                "日月潭",
                "中国·台湾",
                "日月潭，是一个位在台湾南投县鱼池乡日月村的半天然淡水湖泊兼水力发电用水库；该潭是台湾本岛面积第二大的湖泊及第一大半天然湖泊兼发电用水库。该潭平均水面海拔约736米，常态面积约7.93平方公里，最高水深达27米。其蕴含自然生态丰富，但其中有非常多是外来种生物。",
                4,
                true,
                4.6,
                "https://gitee.com/wang-junrong/image-database/raw/master/attraction/pic13.jpg",
                true,
                2180
        ));
        attDao.add(new Attraction(
                0,
                "开元寺",
                "中国·福建",
                "开元寺位于福建省泉州市鲤城区西街，是中国东南沿海重要的文物古迹，也是福建省内规模最大的佛教寺院。该寺始创于唐初垂拱二年（686年），初名莲花道场，开元二十六年（738年）更名开元寺，是宋元时期泉州规模最大、官方地位最突出的佛教寺院。 现存主要庙宇系明、清两代修建，南北长260米，东西宽300米，占地面积78000平方米",
                2,
                true,
                4.6,
                "https://gitee.com/wang-junrong/image-database/raw/master/attraction/pic14.jpg",
                true,
                3000
        ));
        attDao.add(new Attraction(
                0,
                "清源山",
                "中国·福建",
                "清源山位于中国福建省泉州市北郊，是国家重点风景名胜区、国家5A级旅游景区。清源山别称有“泉山”（因泉眼较多）、“齐云山”（山高）、“北山”（位于北郊）及“三台山”（有三座山峰）。清源山景区由清源山、九日山、灵山圣墓三部分组成，面积约62平方公里，地处福建省东南部，晋江下游东北岸，位于东经118°30'-118°37'，北纬24°54'-25°0'之间，与发展中的泉州市区三面接壤，距厦门市106公里，福州市196公里。清源山自然景色秀丽，人文景观绘萃。",
                2,
                true,
                4.6,
                "https://gitee.com/wang-junrong/image-database/raw/master/attraction/pic15.jpg",
                true,
                2800
        ));
        attDao.add(new Attraction(
                2,
                "大皇宫",
                "泰国·曼谷",
                "曼谷大皇宫位于曼谷拍那空县，从18世纪到20世纪，曾是暹罗王国的皇宫。也是泰国王室公定的居住地点，在所有的泰国王宫中有着重要的地位。建于拉玛一世统治期间的1782年，然而，在1946年泰国国王拉玛八世驾崩后，拉玛九世将王室搬到迟塔拉达宫，而象征王朝的宫殿依然存在，因此，现在的泰国王室并不住在这里。",
                2,
                true,
                4.6,
                "https://gitee.com/wang-junrong/image-database/raw/master/attraction/pic16.jpg",
                true,
                2600
        ));
        attDao.add(new Attraction(
                2,
                "苏丹艾哈迈德清真寺",
                "土耳其·伊斯坦布尔",
                "苏丹艾哈迈德清真寺是土耳其的国家清真寺，也是土耳其最大城市及奥斯曼帝国首都伊斯坦布尔的清真寺古迹。苏丹艾哈迈德清真寺是其中一个因室内砖块所用的颜色而被称为蓝色清真寺的清真寺。 苏丹艾哈迈德清真寺建于苏丹艾哈迈德一世统治时的1609年至1616年。",
                4,
                true,
                4.7,
                "https://gitee.com/wang-junrong/image-database/raw/master/attraction/pic17.jpg",
                true,
                3100
        ));
        attDao.add(new Attraction(
                2,
                "克里姆林宫",
                "俄罗斯·莫斯科",
                "莫斯科克里姆林宫是一座位于俄国首都莫斯科市中央行政区特维尔区的一个建筑群，该建筑群南面俯瞰莫斯科河，东临圣巴西尔大教堂与红场，西接亚历山大公园与无名烈士墓，园区包括五座宫殿、四座大教堂和带有塔楼的要塞设施。",
                3,
                true,
                4.6,
                "https://gitee.com/wang-junrong/image-database/raw/master/attraction/pic18.jpg",
                true,
                2200
        ));
        attDao.add(new Attraction(
                2,
                "平壤凯旋门",
                "朝鲜·平壤",
                "平壤凯旋门位于朝鲜民主主义人民共和国首都平壤市之牡丹峰区的牡丹峰大街及凯旋大街的交界处，地处牡丹峰的西麓，邻近金日成竞技场及凯旋青年公园。",
                4,
                true,
                4.6,
                "https://gitee.com/wang-junrong/image-database/raw/master/attraction/pic19.jpg",
                false,
                1800
        ));
        attDao.add(new Attraction(
                2,
                "哈利法塔",
                "阿联酋长国·迪拜",
                "哈利法塔，在落成前称为迪拜塔，是一座位于阿拉伯联合酋长国迪拜境内的摩天大楼，为当前世界第一高楼与人工构造物，高度为828米（2,717英尺）[1][2]，楼层总数169层，造价达15亿美元。自2009年封顶以来一直是世界上最高的建筑，打破了多项高度记录，取代了此前保持这一地位的台北101。",
                1,
                true,
                4.7,
                "https://gitee.com/wang-junrong/image-database/raw/master/attraction/pic20.jpg",
                true,
                2700
        ));
        attDao.add(new Attraction(
                2,
                "埃菲尔铁塔",
                "法国·巴黎",
                "埃菲尔铁塔是位于法国巴黎第七区、塞纳河畔战神广场的铁制镂空塔，世界著名建筑，也是法国文化象征之一，巴黎城市地标之一，巴黎最高建筑物。正式地址为Rue Anatole-France 5号。 埃菲尔铁塔建成于1889年，初名为“三百米塔”，后得名自其设计师居斯塔夫·埃菲尔。",
                2,
                true,
                4.7,
                "https://gitee.com/wang-junrong/image-database/raw/master/attraction/pic21.jpg",
                true,
                2200
        ));

        travelDatabase.close();
    }

}